home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / AIncludes / QD3DLight.a < prev    next >
Encoding:
Text File  |  1998-08-17  |  12.5 KB  |  439 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        QD3DLight.a
  3. ;
  4. ;    Contains:    Generic light routines                                             
  5. ;
  6. ;    Version:    Technology:    Quickdraw 3D 1.5.4
  7. ;                Release:    Universal Interfaces 3.2
  8. ;
  9. ;    Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        For bug reports, consult the following page on
  12. ;                the World Wide Web:
  13. ;
  14. ;                    http://developer.apple.com/bugreporter/
  15. ;
  16. ;
  17.     IF &TYPE('__QD3DLIGHT__') = 'UNDEFINED' THEN
  18. __QD3DLIGHT__ SET 1
  19.  
  20.     IF &TYPE('__QD3D__') = 'UNDEFINED' THEN
  21.     include 'QD3D.a'
  22.     ENDIF
  23.  
  24. ; ******************************************************************************
  25. ; **                                                                             **
  26. ; **                            Enum Definitions                                 **
  27. ; **                                                                             **
  28. ; ****************************************************************************
  29.  
  30.  
  31. ; typedef long                            TQ3AttenuationType
  32. kQ3AttenuationTypeNone            EQU        0
  33. kQ3AttenuationTypeInverseDistance EQU    1
  34. kQ3AttenuationTypeInverseDistanceSquared EQU 2
  35.  
  36.  
  37. ; typedef long                            TQ3FallOffType
  38. kQ3FallOffTypeNone                EQU        0
  39. kQ3FallOffTypeLinear            EQU        1
  40. kQ3FallOffTypeExponential        EQU        2
  41. kQ3FallOffTypeCosine            EQU        3
  42.  
  43. ; ******************************************************************************
  44. ; **                                                                             **
  45. ; **                            Data Structure Definitions                         **
  46. ; **                                                                             **
  47. ; ****************************************************************************
  48.  
  49. TQ3LightData            RECORD 0
  50. isOn                     ds.l    1                ; offset: $0 (0)
  51. brightness                 ds        Float32            ; offset: $4 (4)
  52. color                     ds        TQ3ColorRGB        ; offset: $8 (8)
  53. sizeof                     EQU *                    ; size:   $14 (20)
  54.                         ENDR
  55. TQ3DirectionalLightData    RECORD 0
  56. lightData                 ds        TQ3LightData    ; offset: $0 (0)
  57. castsShadows             ds.l    1                ; offset: $14 (20)
  58. direction                 ds        TQ3Vector3D        ; offset: $18 (24)
  59. sizeof                     EQU *                    ; size:   $24 (36)
  60.                         ENDR
  61. TQ3PointLightData        RECORD 0
  62. lightData                 ds        TQ3LightData    ; offset: $0 (0)
  63. castsShadows             ds.l    1                ; offset: $14 (20)
  64. attenuation                 ds.l    1                ; offset: $18 (24)
  65. location                 ds        TQ3Point3D        ; offset: $1C (28)
  66. sizeof                     EQU *                    ; size:   $28 (40)
  67.                         ENDR
  68. TQ3SpotLightData        RECORD 0
  69. lightData                 ds        TQ3LightData    ; offset: $0 (0)
  70. castsShadows             ds.l    1                ; offset: $14 (20)
  71. attenuation                 ds.l    1                ; offset: $18 (24)
  72. location                 ds        TQ3Point3D        ; offset: $1C (28)
  73. direction                 ds        TQ3Vector3D        ; offset: $28 (40)
  74. hotAngle                 ds        Float32            ; offset: $34 (52)
  75. outerAngle                 ds        Float32            ; offset: $38 (56)
  76. fallOff                     ds.l    1                ; offset: $3C (60)
  77. sizeof                     EQU *                    ; size:   $40 (64)
  78.                         ENDR
  79. ; ******************************************************************************
  80. ; **                                                                             **
  81. ; **                    Light routines (apply to all TQ3LightObjects)             **
  82. ; **                                                                             **
  83. ; ****************************************************************************
  84.  
  85. ;
  86. ; extern TQ3ObjectType Q3Light_GetType(TQ3LightObject light)
  87. ;
  88.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  89.         IMPORT_CFM_FUNCTION Q3Light_GetType
  90.     ENDIF
  91.  
  92. ;
  93. ; extern TQ3Status Q3Light_GetState(TQ3LightObject light, TQ3Boolean *isOn)
  94. ;
  95.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  96.         IMPORT_CFM_FUNCTION Q3Light_GetState
  97.     ENDIF
  98.  
  99. ;
  100. ; extern TQ3Status Q3Light_GetBrightness(TQ3LightObject light, float *brightness)
  101. ;
  102.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  103.         IMPORT_CFM_FUNCTION Q3Light_GetBrightness
  104.     ENDIF
  105.  
  106. ;
  107. ; extern TQ3Status Q3Light_GetColor(TQ3LightObject light, TQ3ColorRGB *color)
  108. ;
  109.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  110.         IMPORT_CFM_FUNCTION Q3Light_GetColor
  111.     ENDIF
  112.  
  113. ;
  114. ; extern TQ3Status Q3Light_SetState(TQ3LightObject light, TQ3Boolean isOn)
  115. ;
  116.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  117.         IMPORT_CFM_FUNCTION Q3Light_SetState
  118.     ENDIF
  119.  
  120. ;
  121. ; extern TQ3Status Q3Light_SetBrightness(TQ3LightObject light, float brightness)
  122. ;
  123.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  124.         IMPORT_CFM_FUNCTION Q3Light_SetBrightness
  125.     ENDIF
  126.  
  127. ;
  128. ; extern TQ3Status Q3Light_SetColor(TQ3LightObject light, const TQ3ColorRGB *color)
  129. ;
  130.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  131.         IMPORT_CFM_FUNCTION Q3Light_SetColor
  132.     ENDIF
  133.  
  134. ;
  135. ; extern TQ3Status Q3Light_GetData(TQ3LightObject light, TQ3LightData *lightData)
  136. ;
  137.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  138.         IMPORT_CFM_FUNCTION Q3Light_GetData
  139.     ENDIF
  140.  
  141. ;
  142. ; extern TQ3Status Q3Light_SetData(TQ3LightObject light, const TQ3LightData *lightData)
  143. ;
  144.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  145.         IMPORT_CFM_FUNCTION Q3Light_SetData
  146.     ENDIF
  147.  
  148.  
  149. ; ******************************************************************************
  150. ; **                                                                             **
  151. ; **                            Specific Light Routines                               **
  152. ; **                                                                             **
  153. ; ****************************************************************************
  154.  
  155. ; ******************************************************************************
  156. ; **                                                                             **
  157. ; **                            Ambient Light                                       **
  158. ; **                                                                             **
  159. ; ****************************************************************************
  160.  
  161. ;
  162. ; extern TQ3LightObject Q3AmbientLight_New(const TQ3LightData *lightData)
  163. ;
  164.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  165.         IMPORT_CFM_FUNCTION Q3AmbientLight_New
  166.     ENDIF
  167.  
  168. ;
  169. ; extern TQ3Status Q3AmbientLight_GetData(TQ3LightObject light, TQ3LightData *lightData)
  170. ;
  171.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  172.         IMPORT_CFM_FUNCTION Q3AmbientLight_GetData
  173.     ENDIF
  174.  
  175. ;
  176. ; extern TQ3Status Q3AmbientLight_SetData(TQ3LightObject light, const TQ3LightData *lightData)
  177. ;
  178.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  179.         IMPORT_CFM_FUNCTION Q3AmbientLight_SetData
  180.     ENDIF
  181.  
  182.  
  183. ; ******************************************************************************
  184. ; **                                                                             **
  185. ; **                        Directional Light                                     **
  186. ; **                                                                             **
  187. ; ****************************************************************************
  188.  
  189. ;
  190. ; extern TQ3LightObject Q3DirectionalLight_New(const TQ3DirectionalLightData *directionalLightData)
  191. ;
  192.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  193.         IMPORT_CFM_FUNCTION Q3DirectionalLight_New
  194.     ENDIF
  195.  
  196. ;
  197. ; extern TQ3Status Q3DirectionalLight_GetCastShadowsState(TQ3LightObject light, TQ3Boolean *castsShadows)
  198. ;
  199.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  200.         IMPORT_CFM_FUNCTION Q3DirectionalLight_GetCastShadowsState
  201.     ENDIF
  202.  
  203. ;
  204. ; extern TQ3Status Q3DirectionalLight_GetDirection(TQ3LightObject light, TQ3Vector3D *direction)
  205. ;
  206.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  207.         IMPORT_CFM_FUNCTION Q3DirectionalLight_GetDirection
  208.     ENDIF
  209.  
  210. ;
  211. ; extern TQ3Status Q3DirectionalLight_SetCastShadowsState(TQ3LightObject light, TQ3Boolean castsShadows)
  212. ;
  213.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  214.         IMPORT_CFM_FUNCTION Q3DirectionalLight_SetCastShadowsState
  215.     ENDIF
  216.  
  217. ;
  218. ; extern TQ3Status Q3DirectionalLight_SetDirection(TQ3LightObject light, const TQ3Vector3D *direction)
  219. ;
  220.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  221.         IMPORT_CFM_FUNCTION Q3DirectionalLight_SetDirection
  222.     ENDIF
  223.  
  224. ;
  225. ; extern TQ3Status Q3DirectionalLight_GetData(TQ3LightObject light, TQ3DirectionalLightData *directionalLightData)
  226. ;
  227.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  228.         IMPORT_CFM_FUNCTION Q3DirectionalLight_GetData
  229.     ENDIF
  230.  
  231. ;
  232. ; extern TQ3Status Q3DirectionalLight_SetData(TQ3LightObject light, const TQ3DirectionalLightData *directionalLightData)
  233. ;
  234.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  235.         IMPORT_CFM_FUNCTION Q3DirectionalLight_SetData
  236.     ENDIF
  237.  
  238.  
  239. ; ******************************************************************************
  240. ; **                                                                             **
  241. ; **                        Point Light                                              **
  242. ; **                                                                             **
  243. ; ****************************************************************************
  244.  
  245. ;
  246. ; extern TQ3LightObject Q3PointLight_New(const TQ3PointLightData *pointLightData)
  247. ;
  248.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  249.         IMPORT_CFM_FUNCTION Q3PointLight_New
  250.     ENDIF
  251.  
  252. ;
  253. ; extern TQ3Status Q3PointLight_GetCastShadowsState(TQ3LightObject light, TQ3Boolean *castsShadows)
  254. ;
  255.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  256.         IMPORT_CFM_FUNCTION Q3PointLight_GetCastShadowsState
  257.     ENDIF
  258.  
  259. ;
  260. ; extern TQ3Status Q3PointLight_GetAttenuation(TQ3LightObject light, TQ3AttenuationType *attenuation)
  261. ;
  262.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  263.         IMPORT_CFM_FUNCTION Q3PointLight_GetAttenuation
  264.     ENDIF
  265.  
  266. ;
  267. ; extern TQ3Status Q3PointLight_GetLocation(TQ3LightObject light, TQ3Point3D *location)
  268. ;
  269.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  270.         IMPORT_CFM_FUNCTION Q3PointLight_GetLocation
  271.     ENDIF
  272.  
  273. ;
  274. ; extern TQ3Status Q3PointLight_GetData(TQ3LightObject light, TQ3PointLightData *pointLightData)
  275. ;
  276.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  277.         IMPORT_CFM_FUNCTION Q3PointLight_GetData
  278.     ENDIF
  279.  
  280. ;
  281. ; extern TQ3Status Q3PointLight_SetCastShadowsState(TQ3LightObject light, TQ3Boolean castsShadows)
  282. ;
  283.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  284.         IMPORT_CFM_FUNCTION Q3PointLight_SetCastShadowsState
  285.     ENDIF
  286.  
  287. ;
  288. ; extern TQ3Status Q3PointLight_SetAttenuation(TQ3LightObject light, TQ3AttenuationType attenuation)
  289. ;
  290.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  291.         IMPORT_CFM_FUNCTION Q3PointLight_SetAttenuation
  292.     ENDIF
  293.  
  294. ;
  295. ; extern TQ3Status Q3PointLight_SetLocation(TQ3LightObject light, const TQ3Point3D *location)
  296. ;
  297.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  298.         IMPORT_CFM_FUNCTION Q3PointLight_SetLocation
  299.     ENDIF
  300.  
  301. ;
  302. ; extern TQ3Status Q3PointLight_SetData(TQ3LightObject light, const TQ3PointLightData *pointLightData)
  303. ;
  304.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  305.         IMPORT_CFM_FUNCTION Q3PointLight_SetData
  306.     ENDIF
  307.  
  308.  
  309. ; ******************************************************************************
  310. ; **                                                                             **
  311. ; **                        Spot Light                                              **
  312. ; **                                                                             **
  313. ; ****************************************************************************
  314.  
  315. ;
  316. ; extern TQ3LightObject Q3SpotLight_New(const TQ3SpotLightData *spotLightData)
  317. ;
  318.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  319.         IMPORT_CFM_FUNCTION Q3SpotLight_New
  320.     ENDIF
  321.  
  322. ;
  323. ; extern TQ3Status Q3SpotLight_GetCastShadowsState(TQ3LightObject light, TQ3Boolean *castsShadows)
  324. ;
  325.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  326.         IMPORT_CFM_FUNCTION Q3SpotLight_GetCastShadowsState
  327.     ENDIF
  328.  
  329. ;
  330. ; extern TQ3Status Q3SpotLight_GetAttenuation(TQ3LightObject light, TQ3AttenuationType *attenuation)
  331. ;
  332.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  333.         IMPORT_CFM_FUNCTION Q3SpotLight_GetAttenuation
  334.     ENDIF
  335.  
  336. ;
  337. ; extern TQ3Status Q3SpotLight_GetLocation(TQ3LightObject light, TQ3Point3D *location)
  338. ;
  339.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  340.         IMPORT_CFM_FUNCTION Q3SpotLight_GetLocation
  341.     ENDIF
  342.  
  343. ;
  344. ; extern TQ3Status Q3SpotLight_GetDirection(TQ3LightObject light, TQ3Vector3D *direction)
  345. ;
  346.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  347.         IMPORT_CFM_FUNCTION Q3SpotLight_GetDirection
  348.     ENDIF
  349.  
  350. ;
  351. ; extern TQ3Status Q3SpotLight_GetHotAngle(TQ3LightObject light, float *hotAngle)
  352. ;
  353.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  354.         IMPORT_CFM_FUNCTION Q3SpotLight_GetHotAngle
  355.     ENDIF
  356.  
  357. ;
  358. ; extern TQ3Status Q3SpotLight_GetOuterAngle(TQ3LightObject light, float *outerAngle)
  359. ;
  360.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  361.         IMPORT_CFM_FUNCTION Q3SpotLight_GetOuterAngle
  362.     ENDIF
  363.  
  364. ;
  365. ; extern TQ3Status Q3SpotLight_GetFallOff(TQ3LightObject light, TQ3FallOffType *fallOff)
  366. ;
  367.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  368.         IMPORT_CFM_FUNCTION Q3SpotLight_GetFallOff
  369.     ENDIF
  370.  
  371. ;
  372. ; extern TQ3Status Q3SpotLight_GetData(TQ3LightObject light, TQ3SpotLightData *spotLightData)
  373. ;
  374.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  375.         IMPORT_CFM_FUNCTION Q3SpotLight_GetData
  376.     ENDIF
  377.  
  378. ;
  379. ; extern TQ3Status Q3SpotLight_SetCastShadowsState(TQ3LightObject light, TQ3Boolean castsShadows)
  380. ;
  381.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  382.         IMPORT_CFM_FUNCTION Q3SpotLight_SetCastShadowsState
  383.     ENDIF
  384.  
  385. ;
  386. ; extern TQ3Status Q3SpotLight_SetAttenuation(TQ3LightObject light, TQ3AttenuationType attenuation)
  387. ;
  388.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  389.         IMPORT_CFM_FUNCTION Q3SpotLight_SetAttenuation
  390.     ENDIF
  391.  
  392. ;
  393. ; extern TQ3Status Q3SpotLight_SetLocation(TQ3LightObject light, const TQ3Point3D *location)
  394. ;
  395.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  396.         IMPORT_CFM_FUNCTION Q3SpotLight_SetLocation
  397.     ENDIF
  398.  
  399. ;
  400. ; extern TQ3Status Q3SpotLight_SetDirection(TQ3LightObject light, const TQ3Vector3D *direction)
  401. ;
  402.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  403.         IMPORT_CFM_FUNCTION Q3SpotLight_SetDirection
  404.     ENDIF
  405.  
  406. ;
  407. ; extern TQ3Status Q3SpotLight_SetHotAngle(TQ3LightObject light, float hotAngle)
  408. ;
  409.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  410.         IMPORT_CFM_FUNCTION Q3SpotLight_SetHotAngle
  411.     ENDIF
  412.  
  413. ;
  414. ; extern TQ3Status Q3SpotLight_SetOuterAngle(TQ3LightObject light, float outerAngle)
  415. ;
  416.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  417.         IMPORT_CFM_FUNCTION Q3SpotLight_SetOuterAngle
  418.     ENDIF
  419.  
  420. ;
  421. ; extern TQ3Status Q3SpotLight_SetFallOff(TQ3LightObject light, TQ3FallOffType fallOff)
  422. ;
  423.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  424.         IMPORT_CFM_FUNCTION Q3SpotLight_SetFallOff
  425.     ENDIF
  426.  
  427. ;
  428. ; extern TQ3Status Q3SpotLight_SetData(TQ3LightObject light, const TQ3SpotLightData *spotLightData)
  429. ;
  430.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  431.         IMPORT_CFM_FUNCTION Q3SpotLight_SetData
  432.     ENDIF
  433.  
  434.  
  435.  
  436.  
  437.     ENDIF ; __QD3DLIGHT__ 
  438.  
  439.